home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Languages / MacQForth 1.0 / asm6502 / demo / file.s < prev    next >
Text File  |  1995-03-21  |  2KB  |  77 lines

  1. ;
  2. ; MakeFile -- creates a file and writes some data. Ignores errors.
  3. ;
  4.  
  5.  *= $300
  6.  
  7. ; create the file "ABC"
  8.  
  9.  lda #$01           ; setup for 'create'
  10.  sta PARAMS      
  11.  lda #<NAME         ; low byte of name address
  12.  sta PARAMS+1
  13.  lda #>NAME         ; high byte of name address
  14.  sta PARAMS+2
  15.  lda #$C0           ; create command
  16.  sta MLI+3          ; put in table
  17.  jsr MLI            ; create the file
  18.  
  19. ; open the file
  20.  
  21.  lda #$03
  22.  sta PARAMS         ; adjust number of parameters, name already set
  23.  lda #$00
  24.  sta PARAMS+3
  25.  lda #$A6
  26.  sta PARAMS+4       ; use file 0
  27.  lda #$C8           ; open command
  28.  sta MLI+3
  29.  jsr MLI            ; open the file
  30.  
  31. ; write to the file
  32.  
  33.  lda #$04
  34.  sta PARAMS
  35.  lda PARAMS+5       ; get reference number returned by open
  36.  sta PARAMS+1       ; and put in for write
  37.  sta REF            ; and save for close
  38.  lda #<STRING        
  39.  sta PARAMS+2       ; pointer to data
  40.  lda #>STRING
  41.  sta PARAMS+3
  42.  lda #$05           ; number of bytes to write
  43.  sta PARAMS+4
  44.  lda #$00
  45.  sta PARAMS+5
  46.  lda #$CB           ; write command
  47.  sta MLI+3
  48.  jsr MLI            ; write the data
  49.  
  50. ; close the file
  51.  
  52.  lda #$01           
  53.  sta PARAMS
  54.  lda REF            ; put in reference number
  55.  sta PARAMS+1
  56.  lda #$CC           ; close command
  57.  sta MLI+3
  58.  jsr MLI            ; close the file
  59.  rts                ; and end
  60.  
  61. ; call MLI
  62.  
  63. MLI jsr $BF00       ; call ProDOS
  64.  .byte $00          ; command number
  65.  .word PARAMS       ; address of parameter table
  66.  rts
  67.     
  68. ; data
  69.  
  70. NAME .byte 3,"ABC"        ; name of the file with length
  71. STRING .byte "Hello",0    ; data to write
  72. REF .byte $00             ; ProDOS reference number
  73. PARAMS .dbyt $0000        ; ProDOS parameter table
  74.  .dbyt $0000
  75.  .dbyt $0000
  76.  .dbyt $0000
  77.